package com.foreknow.demo2;

import java.io.BufferedReader;
import java.io.FileReader;

/**
 * 主人类
 * 实现主人带着宠物看病
 */
public class Master {
    public void cure(Pet p) { //Dog
        if(p.getHealth() < 50){
           p.toHospital();
        }
    }

    public void play(Pet p) {
        //如果想要调用Dog Penguin中新扩充的方法，需要将Pet类型强制转换为子类型(Dog Penguin)
        if(p instanceof Dog){ //如果 Dog 继承自Pet 就返回true
            Dog dog = (Dog) p;
            dog.catchFly();
        }else if(p instanceof Penguin) {
            Penguin penguin = (Penguin) p;
            penguin.swimming();
        }
    }



    public static void main(String[] args) {

//        FileReader fr = new FileReader("aaa");
//        BufferedReader bufferedReader = new BufferedReader(fr);

//        double d = 1;  基本数据中的自动类型转换
//          Pet p;
//          Dog d = new Dog();
//          p = d;  //引用类型的自动转换
//          float f = (float) 3.14;  基本数据类型中的强制类型转换
//          d = (Dog) p; //引用类型中的强制类型转换


        Master master = new Master();
//        int a = 1;
        Dog p = new Dog();
        p.setName("小黄");
        p.setLove(100);
        p.setHealth(30);
        master.cure(p);
        master.play(p);
//        a = 2;
        Penguin p1 = new Penguin();
        p1.setName("QQ");
        p1.setLove(100);
        p1.setHealth(20);
        master.cure(p1);
        master.play(p1);
    }
}
